@哈哈鱼
2年前 提问
1个回答

API 安全的常见解决方‍案‍有哪些

齐士忠
2年前

API安全的常见解决方案有以下这些:

  • API安全网关方案:API技术的兴起伴随着技术架构上的变化,由于Http协议的问题造成了很大安全隐患。为了保障安全,需要开发者在开发阶段针对API加入鉴权、认证以及防篡改方面的安全工作。同时,需要API网关之类的安全防护产品作出相应配置。市场上出现了以独立的API网关为主的API安全解决方案,但在实际应用中发现,这种方案落地困难且成本较高,企业更倾向于使用应用开发者自建的API网关,专业的基于API网关的API安全方案没有获得预想的成功,于是API网关的产品形态还在继续演进。

  • 基于数据分析的API安全方案:通过AI技术对API的访问行为进行分析,发现API的各种异常访问行为,提供API的管理。与API安全网关方案相比,此方案缺少的是安全威胁防控能力。

  • MD5方案:与APP端开发人员约定特定的md5组合算法,然后两端比对一下,如果相同就allow,不相同就deny;但是,这也是不安全的,如果APP程序被反编译,这些约定的算法就会暴露,特别是在安卓APP中,有了算法,完全就可以模拟接口请求通过验证。

  • Token方案:会员登录的时候请求登录接口,然后服务器端返回给客户端一个token,该token生成的规则是网站公钥+当前uid+当前时间戳+一段随机数双重加密,根据需求决定是把该token放进cache等一段时间自动失效,还是放进数据库(如果要放进数据库的话,单独拎出一张表来,顺便记录用户的登录,登出时间),在用户登出登录的时候改变一下,确保该token只能在用户人为登出登录之间有用。为保安全,应保证让用户在一段时间内自动退出;此方案配合Linux和数据库的权限管理可以防外又防内。

  • 对称加密方案:通过对称加密算法,该加密算法对uid+网站公钥进行时效加密,在一定时效内可用。在会员登录成功时,服务器端对该ID加密后返回给客户端,客户端每次请求接口的时候带上该参数,服务器端通过解密认证。但是这样做,也是不安全的。因为,防外不防内,听说这次的携程宕机就是因为内部离职人员的恶意操作。内部不怀好意的人员如果知道相应的算法规则后,就算没有数据库权限,也可以通过接口来操作相关会员。